package collection_try;
import java.util.*;

public class CollectionAPITest {

    public static void main(String[] args) {
        //Collection是接口，使用需要实现类
        Collection<Integer> col = new ArrayList<>();
        //add()添加一个元素，添加基本数据类型，会自动装箱，int--->Integer
        col.add(1);
        col.add(2);
        System.out.println("使用add方法添加1和2："+col);
        //addALl()添加一个集合的所有元素
        List<Integer> integers = Arrays.asList(3, 4, 5, 6, 7, 8);
        col.addAll(integers);
        System.out.println("使用addAll方法添加{3, 4, 5, 6, 7, 8}:"+col);
        String x = Integer.toBinaryString(2) + " " + Integer.toBinaryString(-2) + " " + Integer.toHexString(-2 >>> 2) + " " + Integer.toBinaryString(-2 >>> 2);
        System.out.println(x);
        //remove()方法移除指定元素
        System.out.println("使用remove()方法移除元素1："+col.remove(1)+"(true成功/false失败)移除后集合"+col);
        System.out.println("再次使用remove()方法移除元素1："+col.remove(1)+"(true成功/false失败)移除后集合"+col);
        System.out.println(x);
        //clear()方法清除集合
        col.clear();
        System.out.println("使用clear方法清除集合"+col);
        //isEmpty()方法查看集合是否为空
        System.out.println("使用isEmpty方法查看集合是否为空"+col.isEmpty());
        System.out.println(x);
        //equals()方法比较两个集合是否相等
        ArrayList<Object> objects = new ArrayList<>();
        String x1 = "集合一：" + col + "集合二：" + objects + "使用equals()比较两个集合元素是否相等" + col.equals(objects);
        System.out.println(x1);
        objects.add(1);
        System.out.println(x1);
        System.out.println(x);
        //contains()方法判断集合是否包含指定元素
        System.out.println("集合："+objects+"使用contains()方法判断集合是否包含1这个元素"+objects.contains(1));
        System.out.println("集合："+objects+"使用contains()方法判断集合是否包含2这个元素"+objects.contains(2));
        System.out.println(x);
        //size()方法获取集合长度
        System.out.println("集合："+col+"使用size()方法获取集合长度"+col.size());
        System.out.println("集合："+objects+"使用size()方法获取集合长度"+objects.size());
        System.out.println(x);
        //使用iterator()迭代器遍历集合
        col.addAll( Arrays.asList(new Integer[]{3, 4, 5, 6, 7, 8}));
        System.out.println("使用iterator()遍历集合"+col);
        //reverse
        Collections.reverse((List<?>) col);
        //转化
        String intArrayString = Arrays.toString(col.toArray());
        System.out.println(intArrayString);

        Iterator<Integer> iterator = col.iterator();//获取Iterator对象
        int i = 1;
        while(iterator.hasNext()){//Iterator.hasNext()方法，判断是否有个下一个可迭代对象
            Object next = iterator.next();//返回当前元素，并指针后移，指针指向下一个元素，若没有，下一次hasNext方法会做处理
            System.out.println("第"+i+"个元素："+next);
            i++;
        }

        for (int j = 0; j < col.size(); j++) {
            System.out.println(integers.get(j));
        }

    }
}
